#!/bin/bash

# 定义两个目录路径
dir1="/tmp/file01"
dir2="/tmp/file02"

# 检查第一个目录是否存在
if [ ! -d "$dir1" ]; then
    echo "Directory $dir1 does not exist."
    exit 1
fi

# 检查第二个目录是否存在
if [ ! -d "$dir2" ]; then
    echo "Directory $dir2 does not exist."
    exit 1
fi

# 比较两个目录中的文件
echo "Checking files in $dir1 and $dir2..."

# 遍历第一个目录中的所有文件和子目录
for file in $(find $dir1 -type f); do
    # 获取相对路径
    relative_path="${file#$dir1/}"
    
    # 构建第二个目录中的对应文件路径
    target_file="$dir2/$relative_path"
    
    # 检查目标文件是否存在
    if [ ! -f "$target_file" ]; then
        echo "Missing file: $relative_path"
    else
        # 比较两个文件的内容
        if ! cmp -s "$file" "$target_file"; then
            echo "File content mismatch: $relative_path"
        fi
    fi
done

# 检查第二个目录中是否有额外的文件
for file in $(find $dir2 -type f); do
    # 获取相对路径
    relative_path="${file#$dir2/}"
    
    # 构建第一个目录中的对应文件路径
    source_file="$dir1/$relative_path"
    
    # 检查源文件是否存在
    if [ ! -f "$source_file" ]; then
        echo "Extra file in $dir2: $relative_path"
    fi
done

echo "Check complete."
